Safe class and data evolution in large and long-lived Java applications
نویسنده
چکیده
There is a growing class of applications implemented in object-oriented languages that are large and complex, that exploit object persistence, and need to run uninterrupted for long periods of time. Development and maintenance of such applications can present challenges in the following interrelated areas: consistent and scalable evolution of persistent data and code, optimal build management, and runtime changes to applications. The research presented in this thesis addresses the above issues. Since Java is becoming increasingly popular platform for implementing large and long-lived applications, it was chosen for experiments. The first part of the research was undertaken in the context of the PJama system, an orthogonally persistent platform for Java. A technology that supports persistent class and object evolution for this platform was designed, built and evaluated. This technology integrates build management, persistent class evolution, and support for several forms of eager conversion of persistent objects. Research in build management for Java has resulted in the creation of a generally applicable, compiler-independent smart recompilation technology, which can be re-used in a Java IDE, or as a standalone Java-specific utility similar to make. The technology for eager object conversion that we developed allows the developers to perform arbitrarily complex changes to persistent objects and their collections. A high level of developer’s control over the conversion process was achieved in part due to introduction of a mechanism for dynamic renaming of old class versions. This mechanism was implemented using minor non-standard extensions to the Java language. However, we also demonstrate how to achieve nearly the same results without modifying the language specification. In this form, we believe, our technology can be largely re-used with practically any persistent object solution for Java. The second part of this research was undertaken using as an implementation platform the HotSpot Java Virtual Machine (JVM), which is currently Sun’s main production JVM. A technology was developed that allows the engineers to redefine classes on-the-fly in the running VM. Our main focus was on the runtime evolution of server-type applications, though we also address modification of applications running in the debugger. Unlike the only other similar system for Java known to us, our technology supports redefinition of classes that have methods currently active. Several policies for handling such methods have been proposed, one of them is currently operational, another one is in the experimental stage. We also propose to re-use the runtime evolution technology for dynamic fine-grain profiling of applications.
منابع مشابه
Towards Flexible and Safe Technology for Runtime Evolution of Java Language Applications
There is a class of important computer applications that must run without interruption and yet must be changed from time to time to fix bugs or upgrade functionality. In this paper, we present the initial runtime evolution framework which we have developed for the HotSpot Java Virtual Machine, that allows us to change running applications on-the-fly, without interruption. We describe our staged...
متن کاملTerraforming Cyberspace: Toward a Policy-Based Grid Infra- structure for Secure, Scalable, and Robust Execution of Java- Based Multi-Agent Systems
The CoABS Grid arguably provides the most successful and widely used infrastructure for the large-scale integration of heterogeneous agent frameworks with object-based applications, and legacy systems. In this paper we describe how we are extending Grid capabilities by integrating the NOMADS agent environment for strong mobility and safe execution and the KAoS framework for policy-based managem...
متن کاملRadioactivity of long lived gamma emitters in breakfast cereal consumed in Kuwait and estimates of annual effective doses
Background: Breakfast cereal is a nutritious type of food that is widely consumed by various age groups in Kuwait. This study investigates the presence of long-lived gamma emitters in breakfast cereal, and estimates annual effective doses to various age groups. Materials and Methods: Breakfast cereal samples were collected from the Kuwaiti local market. The samples originated from diff...
متن کاملDynamically Evolvable Distributed Systems
Software systems must change over time. Changing business practices, the relentless advance of technology, and the demands of end users drive this evolution. The functionality required of applications inevitably changes in response to these factors. Consequently, in order to remain viable, applications must evolve to meet new requirements. Software component evolution is a major focus of effort...
متن کاملScalable and Recoverable Implementation of Object Evolution for the PJama1 Platform
PJama1 is the latest version of an orthogonally persistent platform for Java. It depends on a new persistent object store, Sphere, and provides facilities for class evolution. This evolution technology supports an arbitrary set of changes to the classes, which may have arbitrarily large populations of persistent objects. We verify that the changes are safe. When there are format changes, we als...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2001